using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.ComponentModel;
using Doppler.Core.XSubscription;
using Argotic.Core.Rss;
namespace Doppler.Core.Plugin {
  public interface IPluginEvents {
    void OnOptionsOpen ( );
    void OnOptionsClose ( CancelEventArgs args );
    void OnOptionsSave ( );
    void OnOptionsLoad ( );


    void OnBeforeFeedSubscribe ( Uri feedUri );
    void OnAfterFeedSubscribe ( DopplerFeedSubscription feedSubscription );
    void OnBeforeFeedUnsubscribe ( DopplerFeedSubscription feedSubscription );
    void OnAfterFeedUnsubscribe ( DopplerFeedSubscription feedSubscription );
    void OnBeforeEnclosureDownload ( RssEnclosure rssEnclosure, FileInfo file, DopplerFeedSubscription feedSubscription );
    void OnAfterEnclosureDownload ( FileInfo file, DopplerFeedSubscription feedSubscription );

    void OnNewFeedItem ( RssItem feedItem, DopplerFeedSubscription feedSubscription );
    void OnFeedRetrievial ( DopplerFeedSubscription feedSubscription );
  }
}
